package com.ship.dispatch.bean;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ship.common.core.base.Joinable;
import com.ship.common.core.mapping.Label;
import com.ship.common.core.mapping.SearchItem;
import com.ship.common.core.mapping.TableColumn;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

import static com.ship.dispatch.util.NumberFormatUtil.decimalFormat;

/**
 * 年度计划
 *
 * @author AbyssRabbit@163.com
 * @since 2023-10-17
 */
@Data
@TableName("sp_yearly_plan")
public class SpYearlyPlan extends BaseBean implements Joinable {

    private static final long serialVersionUID = 3325066585372278429L;
    /**
     * 年份
     */
    @TableColumn
    @Label(value = "年份")
    private Integer year;

    /**
     * 资源方数量
     */
    @TableColumn
    @SearchItem
    @Label(value = "资源方数量")
    private Integer resourceSide;

    /**
     * 计划船货数
     */
    @TableColumn
    @SearchItem
    @Label(value = "计划船货数")
    private Integer plannedNumberOfShipments;

    /**
     * 计划装载量
     */
    @Label(value = "计划装载量")
    @SearchItem
    private BigDecimal plannedLoadingCapacity;

    /**
     * 计划装载量（格式化）
     */
    @TableField(exist = false)
    @TableColumn
    @Label(value = "计划装载量")
    private String plannedLoadingCapacityString;

    /**
     * 第一船货预计装载时间
     */
    @TableColumn
    @Label(value = "第一船货预计装载时间")
    @SearchItem
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstTimeLoading;

    /**
     * 第一船货预计卸货时间
     */
    @TableColumn
    @Label(value = "第一船货预计卸货时间")
    @SearchItem
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstTimeUnloading;

    /**
     * 最后一船货预计装载时间
     */
    @TableColumn
    @Label(value = "最后一船货预计装载时间")
    @SearchItem
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastTimeLoading;

    /**
     * 最后一船货预计卸货时间
     */
    @TableColumn
    @Label(value = "最后一船货预计卸货时间")
    @SearchItem
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastTimeUnloading;

    /**
     * 年度计划状态（草稿、已生效）
     */
//    @TableColumn
    @SearchItem
    @Label(value = "年度计划状态（1：草稿、3：已生效（下发））")
    private Integer state;

    /**
     * 状态(格式化）
     */
    @TableField(exist = false)
    @TableColumn
    @Label(value = "年度计划状态（1：草稿、3：已生效（下发））")
    private String status;

    @Label(value = "计划名称")
    private String planName;

    @Override
    public String getLabel() {
        return null;
    }

    @Override
    public String getValue() {
        return null;
    }

    public String getplannedLoadingCapacityString(){
        String result = null;
        if (getPlannedLoadingCapacity()!=null){
            result = decimalFormat.format(getPlannedLoadingCapacity());
//            result = result+" MMBtu";
            }
        return result;
    }
}
